package com.demoweb.servlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.demoweb.model.dao.MemberDao;
import com.demoweb.model.dto.Member;


@WebServlet("/member/list.action")
public class MemberListServlet extends HttpServlet {
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {

		// 로그인 되지 않는 사용자는 로그인 화면으로 이동
		if (req.getSession().getAttribute("loginuser") == null) {
			resp.sendRedirect("/demoweb/account/loginform.action?returnuri=" +
			req.getRequestURL()); // 현재 요청에 대한 경로를 문자열로 반환
			return;
		}
	
		// 1. 요청 분석 및 수신 데이터 읽기
		
		// 2. 데이터처리
		MemberDao dao = new MemberDao();
		List<Member> members = dao.getMember();
		
	    // Servlet에서 처리된 데이터를 JSP에 전달(requset 객체 이용)
	    req.setAttribute("members", members);
	    
		// 3. 응답 컨텐츠 생성(JSP 이용해서 처리 - jsp page로 forwad)
		RequestDispatcher dispatcher = req
				.getRequestDispatcher("/WEB-INF/views/member/list.jsp");

		dispatcher.forward(req, resp);
		
		// 3-1. 응답 컨텐츠 생성 (직접 응답 컨텐츠 생성)
//		resp.setContentType("text/html;charset=utf-8");
//		
//		PrintWriter writer = resp.getWriter();
//		
//		writer.println("<!DOCTYPE html>");
//		writer.println("<html>");
//		writer.println("<head>");
//		writer.println("<meta charset='utf-8'>");
//		writer.println("<title></title>");
//		writer.println("<link rel='stylesheet' href='/demoweb/styles/default.css' />");
//		writer.println("</head>");
//		writer.println("<body>");
//
//		writer.println("	<div id='pageContainer'>");
//		writer.println("		<div id='header'>");
//		writer.println("			<div class='title'>");
//		writer.println("				<a href='#'>CSS DEMO WEBSITE</a>");
//		writer.println("			</div>");
//		writer.println("			<div class='links'>");
//		writer.println("				<a href='#'>로그인</a>");
//		writer.println("				<a href='#'>등록</a>");
//		writer.println("			</div>");
//		writer.println("		</div>");
//		writer.println("		<div id='menu'>");
//		writer.println("			<ul>");		
//		writer.println("				<li><a href='/demoweb/member/list.action'>사용자관리</a></li>");
//		writer.println("				<li><a href='#'>메일보내기</a></li>");
//		writer.println("				<li><a href='#'>자료실</a></li>");
//		writer.println("				<li><a href='#'>게시판</a></li>");
//		writer.println("			</ul>");
//		writer.println("		</div>");
//		writer.println("		<div id='content'>");
//		writer.println("			<br /><br />");
//		
//		writer.println("			<div style='text-align:center'>");
//		writer.println("				[&nbsp;<a href='/demoweb/member/registerform.action'>");
//		writer.println("					사용자 등록");
//		writer.println("				</a>&nbsp;]");
//		writer.println("			</div>");
//		
//		writer.println("<br /><br />");
//		
//		writer.println("<table border='1' width='600px' align='center'>");
//		writer.println("<tr style='height:30px;background-color:palegreen'>");
//		writer.println("<td style='text-align:center'>아이디</td>");
//		writer.println("<td style='text-align:center'>이메일</td>");
//		writer.println("<td style='text-align:center'>사용자구분</td>");
//		writer.println("<td style='text-align:center'>활성화여부</td>");
//		writer.println("<td style='text-align:center'>등록일자</td>");
//		writer.println("</tr>");		
//		//조회된 데이터를 표시하는 코드...
//		for (Member member : members) {
//			writer.println("<tr style='height:30px'>");
//			writer.println("<td>");
//			// 브라우저에서 webServer로 데이터를 전송해야 된다.
//			// 강제로 Get방식은 데이터를 문자로 만들어 준다.
//			writer.println("<a href = 'view.action?memberid="+ member.getMemberId() + "'>"); 	// 하이퍼 링크
//			writer.println(member.getMemberId());
//			writer.println("</a>");
//			writer.println("</td>");
//			writer.println("<td>");
//			writer.println(member.getEmail());
//			writer.println("</td>");
//			writer.println("<td>");
//			writer.println(member.getUserType());
//			writer.println("</td>");
//			writer.println("<td>");
//			writer.println(member.isActive());
//			writer.println("</td>");
//			writer.println("<td>");
//			writer.println(member.getRegDate());
//			writer.println("</td>");
//			writer.println("</tr>");
//		}
//		writer.println("</table>");
//		
//		writer.println("		</div>");
//		writer.println("	</div>");
//
//		writer.println("</body>");
//		writer.println("</html>");
	}

	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		req.setCharacterEncoding("utf-8");
		doGet(req, resp);
	}
}
